package com.example.demo.leetcode.jianzhi;

/**
 * @author xujimou
 * @version 2.0
 * @Description
 *  输入两个递增排序的链表，合并这两个链表并使新链表中的节点仍然是递增排序的。
 *
 * 示例1：
 *
 * 输入：1->2->4, 1->3->4
 * 输出：1->1->2->3->4->4
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 * @date 2021/7/16 17:49
 */
public class Node_合并两个链表 {


    public class ListNode {
        int val;
        ListNode next;
        ListNode(int x) { val = x; }
    }

    class Solution {
        public ListNode mergeTwoLists(ListNode l1, ListNode l2) {

            ListNode start = new ListNode(0);
            ListNode head = start;

            while(l1 != null || l2 != null){
                if(l1 !=null && l2 !=null && l1.val <= l2.val){
                    start.next = l1;
                    l1=l1.next;
                }else if(l1 !=null && l2 !=null && l1.val > l2.val){
                    start.next = l2;
                    l2=l2.next;
                }else if(l1 != null){
                    start.next = l1;
                    l1=l1.next;
                }else{
                    start.next = l2;
                    l2=l2.next;
                }
                start = start.next;
            }
            return head.next;
        }
    }


}
